home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / lib / amiga / muls.a < prev    next >
Text File  |  1994-02-01  |  687b  |  43 lines

  1.  
  2.         ;   MULS.A
  3.         ;
  4.         ;   (c)Copyright 1990, Matthew Dillon, All Rights Reserved
  5.         ;
  6.         ;   32x32->32 multiply
  7.         ;
  8.         ;   args on stack, return result on stack
  9.         ;
  10.         ;   CANNOT DESTROY ANY REGS
  11.         ;
  12.         ;    8sp    10sp
  13.         ;    4sp    6sp
  14.  
  15.         section text,code
  16.         xdef    __muls
  17.         xdef    __mulu
  18.         xdef    _hyper__muls
  19.         xdef    _hyper__mulu
  20.  
  21. _hyper__muls:
  22. _hyper__mulu:
  23. __mulu:
  24. __muls:
  25.         movem.l D0/D1,-(sp) ; 0=D0H 2=D0L 4=D1H 6=D1L
  26.  
  27.         swap    D0        ; D0H
  28.         mulu.w    D1,D0        ; D1L   -> D0
  29.         swap    D1        ; D1H
  30.         mulu    2(sp),D1    ; D0L   -> D1
  31.         add.l    D1,D0        ;    +   -> D0 (D1 free)
  32.         swap    D0
  33.         clr.w    D0
  34.         move.w    2(sp),D1    ; D0L
  35.         mulu.w    6(sp),D1    ; D1L
  36.         add.l    D1,D0
  37.         addq.l    #8,sp        ; restore stack
  38.         rts
  39.  
  40.         END
  41.  
  42.  
  43.